package club.mzywucai.blog.file_system.interceptor;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @author mzy
 * @Description
 * 2.x是因为JDK8，接口中可以写方法了；
 * 所以WebMvcConfigurer中可以实现方法了；
 * 所以不用继承WebMvcConfigurerAdapter了！
 *
 * JDK1.8之后，因为接口中可以实现方法了；
 * 所以很多接口不再强制实现很多方法，所以JDK1.8
 * 之后，适配器模式在大多数场景下，都可以被取代了！
 * @date 2018/11/3
 */
@Configuration
public class CustomWebMvcConfigurer implements WebMvcConfigurer {
    // Ant匹配规则！
    // registry.addInterceptor(new AdminLoginInterceptor()).addPathPatterns("/api/*/**");
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 暂时不用拦截器

        // 拦截未登录的：业务场景较为简单，分为/api/、/api/user/
        registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/api/user/**");
        // registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/user/**");

        // 接口中的实现方法必须通过这种方式调用。
        WebMvcConfigurer.super.addInterceptors(registry);
    }
}
